CodeIgniter এর সেশন এবং কুকিজ

Web Development - কোডইগনাইটার (Codeigniter) -

সেশন (Session) এবং কুকিজ (Cookies) CodeIgniter এ ইউজারের ডেটা সংরক্ষণ এবং পরিচালনার জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে। সেশন সাধারণত ইউজার-সর্বাধিক চলমান ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়, যেখানে কুকিজ ক্লায়েন্ট সাইডে ডেটা সংরক্ষণ করে।


সেশন ব্যবস্থাপনা

CodeIgniter এ সেশন ম্যানেজমেন্টের জন্য বিল্ট-ইন লাইব্রেরি রয়েছে। এটি ইউজারের ডেটা সার্ভার-সাইডে সুরক্ষিতভাবে সংরক্ষণ করে।

সেশন কনফিগারেশন

ডিফল্ট কনফিগারেশন:

  1. app/Config/App.php ফাইল খুলুন।
  2. নিম্নলিখিত প্রপার্টি চেক বা সেট করুন:

    public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'; // সেশন হ্যান্ডলার
    public $sessionSavePath = WRITEPATH . 'session'; // সেশন ডেটা সংরক্ষণের পথ
    

সেশন ব্যবহারের উদাহরণ

সেশন ডেটা সেট করা:
$session = \Config\Services::session();

$session->set([
    'user_id' => 123,
    'username' => 'john_doe',
    'is_logged_in' => true,
]);
সেশন ডেটা রিড করা:
echo $session->get('username'); // 'john_doe'
একাধিক সেশন ডেটা রিড করা:
$data = $session->get(); // সমস্ত সেশন ডেটা অ্যারের আকারে রিটার্ন
print_r($data);
সেশন ডেটা ডিলিট করা:
$session->remove('user_id'); // নির্দিষ্ট ডেটা ডিলিট
$session->destroy(); // সমস্ত সেশন ডেটা ডিলিট এবং সেশন বন্ধ

কুকিজ ব্যবস্থাপনা

CodeIgniter-এ কুকিজ ক্লায়েন্ট সাইডে ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। এটি সাধারণত ডেটা স্টোরেজের জন্য সহজ এবং হালকা সমাধান।

কুকিজ কনফিগারেশন

কুকিজ সেট করার জন্য app/Config/App.php ফাইলের $cookiePrefix, $cookieDomain, এবং $cookiePath প্রপার্টিগুলো ব্যবহার করা হয়।

কুকিজ ব্যবহারের উদাহরণ

কুকিজ সেট করা:
$cookie = [
    'name'   => 'username',
    'value'  => 'john_doe',
    'expire' => 3600, // ১ ঘণ্টা
    'secure' => false // HTTPS প্রয়োজন নেই
];

$response = \Config\Services::response();
$response->setCookie($cookie);
কুকিজ রিড করা:
$request = \Config\Services::request();
echo $request->getCookie('username'); // 'john_doe'
কুকিজ ডিলিট করা:
$response->deleteCookie('username');

সেশন বনাম কুকিজ: তুলনা

বৈশিষ্ট্যসেশনকুকিজ
ডেটা সংরক্ষণ স্থানসার্ভারক্লায়েন্ট ব্রাউজার
ডেটা সিকিউরিটিবেশি সুরক্ষিতকম সুরক্ষিত
আকার সীমাবদ্ধতানির্ভর করে সার্ভারের কনফিগারেশনের উপরসাধারণত ৪ কিলোবাইট
মেয়াদকালসেশন শেষ হলে ডেটা মুছে যায়নির্দিষ্ট সময় পর্যন্ত থাকে

সেশন এবং কুকিজ একত্রে ব্যবহার

কখনো কখনো সেশন এবং কুকিজ একত্রে ব্যবহার করতে হতে পারে, যেমন:

  • সেশন: ইউজারের লগইন তথ্য সংরক্ষণের জন্য।
  • কুকিজ: "Remember Me" ফাংশনালিটি কার্যকর করার জন্য।

উদাহরণ:

// Remember Me ফাংশনালিটি
if ($request->getPost('remember_me')) {
    $response->setCookie([
        'name'   => 'remember_token',
        'value'  => 'unique_token_here',
        'expire' => 86400 * 30, // ৩০ দিনের মেয়াদ
    ]);
}

// লগইন চেক
if ($request->getCookie('remember_token')) {
    // কুকি থেকে ইউজার যাচাই
}

Common Issues এবং সমাধান

সেশন কাজ করছে না

  • সমাধান: নিশ্চিত করুন writable/session ফোল্ডার রাইটেবল।

    chmod -R 0777 writable/session
    

কুকি সেট হচ্ছে না

  • সমাধান: কুকি সেট করার সময় সঠিক ডোমেইন এবং পাথ ব্যবহার করুন।

CodeIgniter-এ সেশন এবং কুকিজ ব্যবস্থাপনা সঠিকভাবে ব্যবহার করলে অ্যাপ্লিকেশনের কার্যক্ষমতা ও সিকিউরিটি বাড়ে। এটি ইউজারের তথ্য সুরক্ষিত এবং দীর্ঘমেয়াদি ব্যবস্থাপনার জন্য কার্যকর।

Content added By

সেশন ম্যানেজমেন্ট

Session Management হলো ওয়েব অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ, যা ব্যবহারকারীর ডেটা নির্দিষ্ট সময় পর্যন্ত সংরক্ষণ করে। CodeIgniter একটি বিল্ট-ইন Session Library সরবরাহ করে, যা ব্যবহারকারীর সেশন পরিচালনা করা সহজ করে তোলে।


সেশন লাইব্রেরি লোড করা

CodeIgniter 4-এ Session লাইব্রেরি ডিফল্টভাবে লোড করা থাকে। আপনি সরাসরি session() হেল্পার ফাংশন ব্যবহার করতে পারেন।

$session = session();

সেশন কনফিগারেশন

সেশন কনফিগারেশনটি app/Config/App.php ফাইলে সংজ্ঞায়িত করা হয়।

প্রাথমিক সেটআপ:

public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler';
public $sessionCookieName = 'ci_session';
public $sessionExpiration = 7200; // সেকেন্ডে সময়
public $sessionSavePath = WRITEPATH . 'session';
public $sessionMatchIP = false;
public $sessionTimeToUpdate = 300;
public $sessionRegenerateDestroy = false;

ড্রাইভার অপশন:

  • FileHandler (ডিফল্ট): ফাইল-ভিত্তিক সেশন।
  • DatabaseHandler: ডাটাবেসে সেশন সংরক্ষণ।
  • MemcachedHandler: Memcached ব্যবহার করে।
  • RedisHandler: Redis ব্যবহার করে।

সেশন ব্যবহারের পদ্ধতি

১. সেশনে ডেটা সংরক্ষণ করা

$session = session();
$session->set('username', 'JohnDoe');
$session->set(['email' => 'johndoe@example.com', 'logged_in' => true]);

২. সেশন থেকে ডেটা রিড করা

$session = session();
$username = $session->get('username'); // একক মান
$allData = $session->get(); // সমস্ত সেশন ডেটা

৩. সেশন থেকে নির্দিষ্ট ডেটা মুছে ফেলা

$session = session();
$session->remove('username'); // নির্দিষ্ট ডেটা মুছে ফেলা

৪. সমস্ত সেশন ডেটা মুছে ফেলা

$session = session();
$session->destroy(); // সমস্ত সেশন ধ্বংস

Flashdata ব্যবহারের পদ্ধতি

Flashdata হলো সেশন ডেটা, যা একবার রিড করার পরে স্বয়ংক্রিয়ভাবে মুছে যায়।

Flashdata সেট করা

$session = session();
$session->setFlashdata('success', 'Your data has been saved!');

Flashdata পড়া

$session = session();
echo $session->getFlashdata('success');

Tempdata ব্যবহারের পদ্ধতি

Tempdata হলো সেশন ডেটা, যা নির্দিষ্ট সময় পর্যন্ত সক্রিয় থাকে।

Tempdata সেট করা

$session = session();
$session->setTempdata('token', '123456', 300); // 300 সেকেন্ড বা ৫ মিনিট

Tempdata পড়া

$session = session();
echo $session->getTempdata('token');

Tempdata মুছে ফেলা

$session = session();
$session->removeTempdata('token');

সেশন ডাটাবেস ড্রাইভার ব্যবহার

১. ডাটাবেস টেবিল তৈরি

ডাটাবেস সেশন সংরক্ষণের জন্য একটি টেবিল তৈরি করতে হবে। উদাহরণ:

CREATE TABLE ci_sessions (
    id VARCHAR(128) NOT NULL,
    ip_address VARCHAR(45) NOT NULL,
    timestamp INT(10) UNSIGNED DEFAULT 0 NOT NULL,
    data BLOB NOT NULL,
    PRIMARY KEY (id),
    KEY `ci_sessions_timestamp` (`timestamp`)
);

২. কনফিগারেশন আপডেট

app/Config/App.php ফাইলে ডাটাবেস ড্রাইভার সেট করুন:

public $sessionDriver = 'CodeIgniter\Session\Handlers\DatabaseHandler';
public $sessionSavePath = 'ci_sessions'; // টেবিলের নাম

সেশন নিরাপত্তা

  • Session Regeneration: সেশন হাইজ্যাকিং প্রতিরোধের জন্য সেশন রিজেনারেট করুন:

    $session = session();
    $session->regenerate();
    
  • IP Address Match: সেশন কনফিগারেশনে sessionMatchIP অপশন true করে দিন:

    public $sessionMatchIP = true;
    
  • HTTP Only Cookies: কনফিগার করুন যেন সেশন কুকিজ শুধুমাত্র HTTP এর মাধ্যমে অ্যাক্সেসযোগ্য হয়:

    public $cookieHTTPOnly = true;
    

সেশন ব্যবহারের উদাহরণ

Controller:

<?php
namespace App\Controllers;

class SessionExample extends BaseController {
    public function index() {
        $session = session();
        $session->set('username', 'JohnDoe');
        $session->setFlashdata('success', 'Welcome, JohnDoe!');
        return view('session_view');
    }
}

View:

<?php if (session()->getFlashdata('success')): ?>
    <div class="alert alert-success">
        <?= session()->getFlashdata('success'); ?>
    </div>
<?php endif; ?>
<p>Username: <?= session()->get('username'); ?></p>

সারসংক্ষেপ

CodeIgniter-এর Session Management ডেভেলপারদের সেশন ডেটা সংরক্ষণ, নিরাপত্তা নিশ্চিত করা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য একটি শক্তিশালী এবং সহজ পদ্ধতি প্রদান করে। Flashdata এবং Tempdata এর মতো ফিচার অ্যাপ্লিকেশনকে আরও কার্যকর করে তোলে।

Content added By

কুকিজ সেট করা এবং রিড করা

CodeIgniter-এ কুকিজ (Cookies) ব্যবহার করে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করা যায়। এটি সাধারণত ব্যবহারকারীর ব্রাউজারে ছোট ডেটা স্টোর করতে ব্যবহৃত হয়। CodeIgniter কুকিজ ম্যানেজমেন্টের জন্য একটি সহজ এবং কার্যকর পদ্ধতি প্রদান করে।


কুকিজ সেট করা

CodeIgniter-এ কুকিজ সেট করার জন্য আপনি response() অবজেক্ট ব্যবহার করতে পারেন।

উদাহরণ: একটি কুকি সেট করা

$response = service('response');

$response->setCookie(
    'user_name',         // কুকির নাম
    'John Doe',          // কুকির মান
    3600,                // কুকির মেয়াদ (সেকেন্ডে)
    '',                  // ডোমেইন (ডিফল্ট ব্রাউজার ডোমেইন)
    '/',                 // পাথ (ডিফল্ট: রুট ডিরেক্টরি)
    true,                // HTTPOnly
    true                 // Secure (https এর জন্য)
);

echo "Cookie Set Successfully!";

এখানে:

  • user_name: কুকির নাম।
  • John Doe: কুকির মান।
  • 3600: ১ ঘণ্টার জন্য কুকির মেয়াদ।

HTTP Response মাধ্যমে কুকি পাঠানো

আপনার কন্ট্রোলারে এটি একটি HTTP রেসপন্সের অংশ হিসেবে পাঠানো হবে।


কুকিজ রিড করা

CodeIgniter-এ কুকি রিড করার জন্য আপনি request() অবজেক্ট ব্যবহার করতে পারেন।

উদাহরণ: কুকি রিড করা

$request = service('request');

// কুকি রিড করা
$userName = $request->getCookie('user_name');

if ($userName) {
    echo "User Name: " . $userName;
} else {
    echo "No Cookie Found!";
}

একটি নির্দিষ্ট কুকি চেক করা

if ($request->getCookie('user_name')) {
    echo "Cookie Exists!";
} else {
    echo "Cookie Does Not Exist!";
}

কুকি ডিলিট করা

কোনো কুকি মুছে ফেলার জন্য deleteCookie() মেথড ব্যবহার করা হয়।

উদাহরণ: কুকি ডিলিট করা

$response = service('response');

// কুকি ডিলিট
$response->deleteCookie('user_name');
echo "Cookie Deleted Successfully!";

একাধিক কুকি সেট করা

CodeIgniter একই সাথে একাধিক কুকি সেট করতে পারে।

উদাহরণ:

$response = service('response');

// প্রথম কুকি
$response->setCookie('user_name', 'John Doe', 3600);

// দ্বিতীয় কুকি
$response->setCookie('user_role', 'Admin', 3600);

echo "Multiple Cookies Set Successfully!";

কুকিজ ব্যবহারের জন্য গুরুত্বপূর্ণ বিষয়

  1. HTTPOnly:
    • true থাকলে কুকি শুধুমাত্র HTTP প্রটোকলের মাধ্যমে অ্যাক্সেস করা যাবে (JavaScript থেকে নয়)।
    • এটি সিকিউরিটি বাড়ায়।
  2. Secure:
    • true থাকলে কুকি শুধুমাত্র HTTPS প্রটোকলে পাঠানো হবে।
    • HTTPS সার্ভারে কাজ করার সময় এই সেটিং ব্যবহার করুন।
  3. Expiration:
    • কুকির মেয়াদ সেকেন্ডে নির্ধারণ করতে হয়। যদি 0 সেট করা হয়, তবে এটি সেশন কুকি হিসেবে কাজ করবে।

উদাহরণ: সম্পূর্ণ Controller কোড

<?php

namespace App\Controllers;

class CookieController extends BaseController
{
    public function setCookie()
    {
        $response = service('response');
        $response->setCookie('user_name', 'John Doe', 3600, '/', '', true, true);
        echo "Cookie Set Successfully!";
    }

    public function getCookie()
    {
        $request = service('request');
        $userName = $request->getCookie('user_name');
        echo $userName ? "User Name: " . $userName : "No Cookie Found!";
    }

    public function deleteCookie()
    {
        $response = service('response');
        $response->deleteCookie('user_name');
        echo "Cookie Deleted Successfully!";
    }
}

ব্রাউজারে কুকিজ চেক করা

  1. Chrome DevTools:
    • ব্রাউজারে F12 চাপুন।
    • Application Tab > Cookies এ যান।
    • আপনার কুকির তালিকা দেখতে পাবেন।
  2. Firefox:
    • Ctrl + Shift + I চাপুন।
    • Storage Tab > Cookies চেক করুন।

সারাংশ

  • CodeIgniter-এ কুকি সেট করার জন্য setCookie() এবং রিড করার জন্য getCookie() মেথড ব্যবহার করা হয়।
  • সিকিউরিটি উন্নত করতে HTTPOnly এবং Secure সেটিং ব্যবহার করুন।
  • কুকি ডিলিট করার জন্য deleteCookie() মেথড ব্যবহার করুন।

CodeIgniter-এর কুকিজ ম্যানেজমেন্ট সহজ এবং কার্যকর, যা ব্যবহারকারীর ডেটা স্টোর এবং রিড করার জন্য আদর্শ।

Content added By

ফ্ল্যাশডেটা ব্যবহার

Flashdata হলো CodeIgniter-এ একটি সেশন ডেটা, যা শুধুমাত্র একটি পেজ লোড পর্যন্ত উপলব্ধ থাকে। সাধারণত এটি একটি রিকোয়েস্ট থেকে পরবর্তী রিকোয়েস্টে টেম্পোরারি মেসেজ পাঠানোর জন্য ব্যবহৃত হয়, যেমন:

  • সফল মেসেজ
  • ত্রুটি বার্তা
  • নোটিফিকেশন

Flashdata এর বৈশিষ্ট্য

  1. Flashdata শুধুমাত্র একটি রিকোয়েস্ট সাইকেলের জন্য স্থায়ী থাকে।
  2. এটি স্বয়ংক্রিয়ভাবে সেশন থেকে মুছে ফেলা হয় পরবর্তী রিকোয়েস্টের পরে।
  3. এটি সাধারণত ফর্ম সাবমিশন বা রিডাইরেকশনের পরে মেসেজ প্রদর্শনের জন্য ব্যবহৃত হয়।

Flashdata সেট করা

Flashdata সেট করতে setFlashdata() মেথড ব্যবহার করা হয়।

উদাহরণ: Flashdata সেট করা

session()->setFlashdata('success', 'Your form was submitted successfully!');

এখানে:

  • 'success': Flashdata এর কী।
  • 'Your form was submitted successfully!': Flashdata এর মান।

Flashdata রিড করা

Flashdata রিড করার জন্য getFlashdata() মেথড ব্যবহার করা হয়।

উদাহরণ: Flashdata রিড করা

if (session()->getFlashdata('success')) {
    echo session()->getFlashdata('success');
}

এটি সেশন থেকে 'success' কীর Flashdata রিড করে মেসেজ প্রদর্শন করবে।


Flashdata ব্যবহার উদাহরণ

Controller

app/Controllers/Form.php:

<?php

namespace App\Controllers;

class Form extends BaseController
{
    public function submit()
    {
        // ফর্ম প্রসেসিং লজিক

        // সফল Flashdata সেট করা
        session()->setFlashdata('success', 'Your data has been saved successfully!');

        // রিডাইরেকশন
        return redirect()->to('/form');
    }
}

View

app/Views/form_view.php:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form</title>
</head>
<body>
    <?php if (session()->getFlashdata('success')): ?>
        <div class="alert alert-success">
            <?php echo session()->getFlashdata('success'); ?>
        </div>
    <?php endif; ?>

    <form action="/form/submit" method="post">
        <button type="submit">Submit</button>
    </form>
</body>
</html>

একাধিক Flashdata সেট করা

Flashdata সেট করার সময় একাধিক কী-মূল্য জোড়া সংরক্ষণ করতে পারেন।

উদাহরণ: একাধিক Flashdata

session()->setFlashdata([
    'success' => 'Data saved successfully!',
    'error' => 'Something went wrong!'
]);

রিড করা

if (session()->getFlashdata('success')) {
    echo session()->getFlashdata('success');
}

if (session()->getFlashdata('error')) {
    echo session()->getFlashdata('error');
}

Flashdata চেক করা

Flashdata চেক করার জন্য has() মেথড ব্যবহার করতে পারেন।

উদাহরণ

if (session()->has('success')) {
    echo session()->getFlashdata('success');
}

Flashdata এর ব্যবহার ক্ষেত্র

  1. ফর্ম সাবমিশন সফল হলে নোটিফিকেশন মেসেজ।
  2. রিডাইরেকশনের পর নোটিফিকেশন দেখানো।
  3. ত্রুটি বার্তা প্রদর্শন।

সেশন এর সাথে Flashdata এর পার্থক্য

FlashdataSession Data
শুধুমাত্র একটি রিকোয়েস্ট পর্যন্ত উপলব্ধ।স্থায়ীভাবে সেশন পর্যন্ত সংরক্ষণ করা হয়।
স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।ম্যানুয়ালি মুছে ফেলতে হয়।
সাধারণত নোটিফিকেশন মেসেজের জন্য ব্যবহৃত হয়।যেকোনো ধরণের ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

সারাংশ

CodeIgniter-এ Flashdata ব্যবহার করে সহজে টেম্পোরারি মেসেজ পাস করা যায়। এটি ফর্ম সাবমিশন বা রিডাইরেকশনের পর ব্যবহারকারীদের তথ্য প্রদর্শন করার জন্য কার্যকর একটি টুল। এটি সেশন সিস্টেমের মাধ্যমে পরিচালিত হয় এবং খুব সহজেই অ্যাপ্লিকেশনের মধ্যে ইমপ্লিমেন্ট করা যায়।

Content added By

সেশন এবং কুকিজ সিকিউরিটি

CodeIgniter এ সেশন (Session) এবং কুকিজ (Cookies) ব্যবহৃত হয় ব্যবহারকারীর তথ্য সংরক্ষণ ও পরিচালনার জন্য। সেশন এবং কুকিজ সঠিকভাবে সিকিউর না হলে নিরাপত্তাজনিত ঝুঁকি তৈরি হতে পারে। CodeIgniter এর বিল্ট-ইন টুলস ব্যবহার করে সেশন এবং কুকিজ সিকিউর করা যায়।


সেশন (Session)

সেশন কী?

Session হলো একটি ব্যবহারকারীর তথ্য সাময়িকভাবে সার্ভারে সংরক্ষণ করার একটি পদ্ধতি। এটি সাধারণত একটি সেশন আইডি ব্যবহার করে ব্যবহারকারীকে শনাক্ত করে।


সেশন কনফিগারেশন

CodeIgniter এ সেশন কনফিগারেশন app/Config/App.php ফাইলে করা হয়।

সেশন কনফিগারেশন সেটিংস

$sessionDriver, $sessionCookieName, $sessionSavePath, এবং $sessionExpiration গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার।

public $sessionDriver            = 'CodeIgniter\Session\Handlers\FileHandler';
public $sessionCookieName        = 'ci_session';
public $sessionSavePath          = WRITEPATH . 'session';
public $sessionExpiration        = 7200; // সেশনের মেয়াদ (সেকেন্ডে)
public $sessionMatchIP           = false; // আইপি মিলানোর জন্য
public $sessionTimeToUpdate      = 300; // সেশন আইডি আপডেটের সময়
public $sessionRegenerateDestroy = false;

সেশন সিকিউরিটি উন্নত করা

  1. HTTPOnly কুকিজ ব্যবহার করুন: সেশন কুকিজ জাভাস্ক্রিপ্ট থেকে অ্যাক্সেস বন্ধ করতে:

    public $cookieSecure = true;
    
  2. আইপি মিলান সক্রিয় করুন: প্রতিটি সেশনের জন্য ব্যবহারকারীর আইপি নিশ্চিত করতে:

    public $sessionMatchIP = true;
    

সেশন পরিচালনা

সেশন ডেটা সেট করা

Controller এ session() হেল্পার ব্যবহার করে সেশন ডেটা সেট করা যায়:

$session = session();
$session->set('user_id', 123);
$session->set('user_email', 'user@example.com');

সেশন ডেটা রিট্রিভ করা

$session = session();
$userId = $session->get('user_id');
$userEmail = $session->get('user_email');

সেশন ডেটা মুছে ফেলা

একটি নির্দিষ্ট ডেটা মুছে ফেলার জন্য:

$session->remove('user_id');

সকল সেশন ডেটা মুছে ফেলার জন্য:

$session->destroy();

কুকিজ (Cookies)

কুকিজ কী?

Cookie হলো একটি ছোট ফাইল যা ব্রাউজারের মাধ্যমে ব্যবহারকারীর ডিভাইসে সংরক্ষণ করা হয়। এটি সাধারণত ব্যবহারকারীর পছন্দ এবং লগইন তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।


কুকিজ সেটিংস

CodeIgniter এ কুকিজ কনফিগারেশন app/Config/App.php ফাইলে করা হয়।

কুকিজ সিকিউরিটি কনফিগারেশন

public $cookiePrefix   = ''; // কুকিজের জন্য প্রিফিক্স
public $cookieDomain   = ''; // ডোমেইন যেখানে কুকিজ প্রযোজ্য
public $cookiePath     = '/'; // কুকিজ প্রযোজ্য পথ
public $cookieSecure   = true; // শুধুমাত্র HTTPS এর জন্য কুকিজ
public $cookieHTTPOnly = true; // জাভাস্ক্রিপ্ট থেকে কুকিজ অ্যাক্সেস নিষিদ্ধ

কুকিজ পরিচালনা

কুকিজ সেট করা

setcookie() ফাংশন ব্যবহার করে কুকিজ সেট করা যায়:

$cookie = [
    'name'   => 'user_preference',
    'value'  => 'dark_mode',
    'expire' => 3600, // ১ ঘণ্টা
    'path'   => '/',
    'secure' => true,
    'httponly' => true,
];
setcookie($cookie['name'], $cookie['value'], $cookie['expire'], $cookie['path'], '', $cookie['secure'], $cookie['httponly']);

কুকিজ রিড করা

$cookieValue = $_COOKIE['user_preference'] ?? null;

কুকিজ মুছে ফেলা

setcookie('user_preference', '', time() - 3600, '/');

সেশন এবং কুকিজ সিকিউর করার সেরা চর্চা

  1. HTTPS ব্যবহার করুন: সেশন এবং কুকিজ সিকিউর করার জন্য HTTPS নিশ্চিত করুন এবং cookieSecure কনফিগারেশন সক্রিয় রাখুন।
  2. HTTPOnly কুকিজ: কুকিজকে শুধুমাত্র HTTP প্রোটোকলের মাধ্যমে অ্যাক্সেসযোগ্য করে তুলুন:

    public $cookieHTTPOnly = true;
    
  3. সেশন আইডি পুনর্জন্ম: প্রতিবার লগইন বা গুরুত্বপূর্ণ কাজের সময় সেশন আইডি পুনর্জন্ম করুন:

    session()->regenerate();
    
  4. সেশন ডেটা এনক্রিপশন: সেশন ডেটা সুরক্ষিত করতে CodeIgniter এর ডিফল্ট এনক্রিপশন ব্যবহার করুন।
  5. কুকিজের সময়সীমা নির্ধারণ করুন: অপ্রয়োজনীয় সময় পর্যন্ত কুকিজ সংরক্ষণ করবেন না।

সারাংশ

CodeIgniter এ সেশন এবং কুকিজ পরিচালনা নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ। সঠিক কনফিগারেশন এবং সেরা চর্চা অনুসরণ করলে ডেটা চুরি এবং নিরাপত্তা ঝুঁকি প্রতিরোধ করা যায়। সেশন এবং কুকিজ সিকিউর করার জন্য CodeIgniter এর বিল্ট-ইন কনফিগারেশন এবং টুলগুলো যথেষ্ট কার্যকর।

Content added By
Promotion